home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / strategy / xpat2-1.000 / xpat2-1 / xpat2-1.04 / src / r_Klondike.c < prev    next >
C/C++ Source or Header  |  1994-09-28  |  2KB  |  68 lines

  1. /*****************************************************************************/
  2. /*                                         */
  3. /*                                         */
  4. /*    X patience version 2 -- module r_Klondike.c                 */
  5. /*                                         */
  6. /*    Characteristics of the ``Klondike'' rules                 */
  7. /*    written by Michael Bischoff (mbi@mo.math.nat.tu-bs.de)             */
  8. /*    see COPYRIGHT.xpat2 for Copyright details                 */
  9. /*                                         */
  10. /*                                         */
  11. /*****************************************************************************/
  12. #include "xpatgame.h"
  13.  
  14. static void Klondike_newgame(void) {
  15.     int i;
  16.     /* specific part: */
  17.     for (i = 0; i < rules.numslots; ++i) {
  18.     game.ind[rules.numstacks+i+1] = game.ind[rules.numstacks+i] + i + 1;
  19.     game.visible[game.ind[rules.numstacks+i+1]-1] = 1; /* card is turned */
  20.     }
  21.     game.ind[IDECK] = game.ind[VDECK];
  22.  
  23. }
  24.  
  25. static void Klondike_init(void) {
  26.     if (rules.param[0])
  27.     rules.move_bits |= STACK_SOURCE;
  28. }
  29.  
  30. struct rules Klondike_rules = {
  31.     "Klondike",    /* shortname */
  32.     NULL,    /* longname */
  33.     NULL,       /* abbrev */
  34.     0,        /* layout_hints */
  35.     DECK_SOURCE|KLONDIKE_DEAL,/* variant */
  36.     CUSTOM_PARAM0|CUSTOM_PARAM1|CUSTOM_PARAM2,/* customizable */
  37.     0,        /* customized */
  38.     52,        /* numcards */
  39.     4,        /* numstacks */
  40.     7,        /* numslots */
  41.     0,        /* numtmps */
  42.     1,        /* numdecks */
  43.     13,        /* cards_per_color */
  44.     0,        /* numjokers */
  45.     {0, 3, 1, 0},/* param[0], param[1], param[2], param[3] */
  46.     0,        /* facedown */
  47.     1,        /* faceup */
  48.     0,        /* newgame_bits */
  49.     Klondike_newgame,/* new_game */
  50.     NULL,    /* game_won */
  51.     NULL,    /* new_cards */
  52.     ES_KINGS|US_RA|MG_RA|ST_ONE|DC_ALWAYS, /* move_bits */
  53.     NULL,    /* deal_cards */
  54.     NULL,    /* undeal_cards */
  55.     NULL,    /* stackable */
  56.     NULL,    /* movevalid */
  57.     NULL,    /* valid */
  58.     NULL,    /* relaxed_valid */
  59.     std_good_hint,/* good_hint */
  60.     NULL,    /* automove */
  61.     NULL,    /* score */
  62.     0,        /* maxscore */
  63.     {0, TXTI_FLIP, 0, 0}, /* paramstring blocks */
  64.     0,        /* used */
  65.     Klondike_init,/* initfunc */
  66.     NULL,    /* local keyboard bindings */
  67. };
  68.